|
RabbitMQ : Use on PHP
2016/09/03 |
|
This is an example to use RabbitMQ on PHP.
|
|
| [1] | Install some packages. |
|
# install from EPEL [root@dlp ~]# yum --enablerepo=epel -y install composer php-bcmath
|
| [2] | Install AMQP client library. |
|
[cent@dlp ~]$ composer require php-amqplib/php-amqplib
Using version ^2.6 for php-amqplib/php-amqplib
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing php-amqplib/php-amqplib (v2.6.3)
Downloading: 100%
Writing lock file
Generating autoload files
[cent@dlp ~]$ composer install Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Nothing to install or update Generating autoload files |
| [3] | This is an example of sending message on PHP. For example, connect with RabbitMQ user "serverworld", virtualhost "my_vhost". |
|
[cent@dlp ~]$
vi send_msg.php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
$connection = new AMQPStreamConnection('127.0.0.1', 5672, 'serverworld', 'password', '/my_vhost');
$channel = $connection->channel();
$channel->queue_declare('Hello_World', false, false, false, false);
$msg = new AMQPMessage('Hello RabbitMQ World!');
$channel->basic_publish($msg, '', 'Hello_World');
echo " [x] Sent 'Hello_World'\n";
$channel->close();
$connection->close();
?>
php send_msg.php [x] Sent 'Hello_World' |
| [4] | This is an example of receiving message on PHP. |
|
[cent@node01 ~]$
vi receive_msg.php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
$connection = new AMQPStreamConnection('127.0.0.1', 5672, 'serverworld', 'password', '/my_vhost');
$channel = $connection->channel();
$channel->queue_declare('Hello_World', false, false, false, false);
echo ' [*] Waiting for messages. To exit press CTRL+C', "\n";
$callback = function($msg) {
echo " [x] Received ", $msg->body, "\n";
};
$channel->basic_consume('Hello_World', '', false, true, false, false, $callback);
while(count($channel->callbacks)) {
$channel->wait();
}
?>
php receive_msg.php [*] Waiting for messages. To exit press CTRL+C [x] Received Hello RabbitMQ World! |